package com.sicheng.lc.lc笔试.美团篇;

import java.util.Scanner;

/**
 * @author zsc
 * @version 1.0
 * @date 2022/8/13 16:15
 */
public class 机器人打扫 {
    /**
     * 你买了一个扫地机器人，你想要知道这个扫地机器人是否能够将房间打扫干净。
     * <p>
     * 为了简化问题，我们不妨假设房间被划分为n*m的方格。定义打扫干净为这n*m的方格全部被打扫过至少一次。
     * <p>
     * 你为扫地机器人下达了若干指令。每个指令为上下左右移动中的一种。机器人会将经过的路径上的方格打扫干净。
     * <p>
     * 初始时假设机器人处于第一行第一列的方格中。这个方格初始时会被机器人直接打扫干净。
     * <p>
     * <p>
     * <p>
     * 现在询问你机器人能否将房间打扫干净，能则输出Yes，不能则输出No。
     * <p>
     * 对于Yes的情况下，还要求你继续输出到哪个指令结束后，房间就打扫干净了。
     * <p>
     * 对于No的情况下，还要求你输出还有多少个地块没有打扫干净。
     * <p>
     * 保证机器人在打扫的过程中不会越过房间边界。换句话说机器人始终保持在n*m的方格图中。
     * <p>
     * <p>
     * <p>
     * 输入描述
     * 第一行三个正整数n, m, k，以空格分开，表示房间大小n*m，接下来会有长度为k的指令。
     * <p>
     * 第二行长度为k的一个字符串。字符串中仅有下面四种字符（注意：均为大写）
     * <p>
     * W：表示下一步机器人将向上移动
     * <p>
     * A：表示下一步机器人将向左移动
     * <p>
     * S：表示下一步机器人将向下移动
     * <p>
     * D：表示下一步机器人将向右移动
     * <p>
     * 保证2 <= n, m <= 100, 指令长度 <= 100000
     * <p>
     * 输出描述
     * 第一行一个字符串Yes或No表示能否打扫干净
     * <p>
     * 对于Yes的情况，第二行输出一个正整数，表示在第几个指令之后已经打扫干净了。
     * <p>
     * 注意指令编号从1开始而不是0。
     * <p>
     * 对于No的情况，第二行输出一个正整数，表示还剩几个地块没有打扫。
     * <p>
     * <p>
     * 样例输入
     * 2 2 5
     * SDWAS
     * 样例输出
     * Yes
     * 3
     * <p>
     * 提示
     * <p>
     * 样例解释1
     * <p>
     * 第三个指令完成时，这个2*2大小的房间已经被打扫完毕。
     * <p>
     * <p>
     * <p>
     * 输入样例2
     * <p>
     * 2 2 5
     * <p>
     * SWSWS
     * <p>
     * <p>
     * <p>
     * 输出样例2
     * <p>
     * No
     * <p>
     * 2
     * <p>
     * <p>
     * <p>
     * 样例解释2
     * <p>
     * 显然指令结束时也没有打扫完。打扫完毕了两个地块。还剩两个地块没有打扫。
     */

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int m = in.nextInt();
        int k = in.nextInt();
        String s = in.next();
        boolean[][] st = new boolean[n][m];
        st[0][0] = true;
        int cnt = 1;
        int x = 0, y = 0;
        for (int i = 0; i < s.length(); i++) {
            char next = s.charAt(i);
            if (next == 'W') {
                x--;
            } else if (next == 'D') {
                y++;
            } else if (next == 'S') {
                x++;
            } else
                y--;

            if (!st[x][y]) {
                st[x][y] = true;
                cnt++;
            }
            if (cnt == m * n) {
                System.out.println("Yes");
                System.out.println(i + 1);
                return;
            }
        }
        System.out.println("No");
        System.out.println(m * n - cnt);
    }
}
